package config

import (
	"fmt"
	"github.com/spf13/viper"
)

// InitConfig 负责加载配置文件，支持多路径和默认值
func InitConfig(env string, paths ...string) error {
	viper.SetConfigName("config." + env) // 例如 config.development.yaml
	viper.SetConfigType("yaml")

	for _, p := range paths {
		viper.AddConfigPath(p) // 添加配置文件查找路径
	}

	// 设置默认值
	viper.SetDefault("app.name", "userServer")
	viper.SetDefault("app.port", 8080)

	// 读取配置文件
	if err := viper.ReadInConfig(); err != nil {
		return fmt.Errorf("读取配置文件失败: %w", err)
	}

	// 支持从环境变量覆盖配置（自动转换 . 变 _）
	viper.AutomaticEnv()

	return nil
}
